Object detection has a wide range of applications. For example, face detection may be used in human-computer interaction, photo-album management, biometric authentication, video surveillance, automatic-focus imaging, and a variety of other vision systems. Human detection may be used in video surveillance, advanced driver assistance systems, and the like. Other object detection examples include traffic monitoring, automated vehicle parking, character recognition, manufacturing quality control, object counting and quality monitoring.
In some existing object detection systems, the Viola-Jones cascade detection framework is used. In the Viola-Jones cascade detection framework, an input image is scanned with a sliding window to probe whether or not a target exists in the window using a cascade classifier. Such methods are computationally intensive. Software and hardware based implementations have been proposed, however there are limitations to the existing implementations especially as image and video resolution increase. In software implementations, it may be impossible to realize real-time object detection. In graphics processing unit (GPU) implementations, such methods may consume most or all of the computing resources such that resources are not available for other tasks. Other hardware implementations, such as field-programmable gate array (FPGA) and digital signal processor (DSP) implementations may not be re-configurable when the hardware is fixed.
Since object detection may be used in such a wide variety of applications, it may be desirable to make object detection execute more efficiently.